GitHub Integration
SejHey's GitHub integration allows you to seamlessly synchronize your translation files with your GitHub repository. This enables you to maintain your translations in version control while leveraging SejHey's powerful translation management features, including AI translations, in-context editing, and collaborative workflows.
✨ Features
- Pull translations from GitHub: Import existing translation files from your repository into SejHey
- Branch selection: Choose which branch to work with
- Push via merge requests: Push translations back to your repository by creating merge requests
- Translation versioning: Select which translation release bundle to publish
- Automatic synchronization: Keep your repository and SejHey project in sync
🔗 Setting Up GitHub Integration
Step 1: Connect Your GitHub Account
- Navigate to your SejHey project settings
- Go to the Integrations section
- Click Connect GitHub
- Authorize SejHey to access your GitHub repositories
- Select the repositories you want to connect
Step 2: Configure Repository Settings
Once connected, configure your repository settings:
- Repository: Select the repository you want to sync with
- Branch: Choose which branch to work against (default is usually
mainormaster) - File paths: Specify the paths where your translation files are located
- File format: Select the format of your translation files (JSON, PO, XLIFF, etc.)
📥 Pulling Translations from GitHub
You can pull existing translation files from your GitHub repository into SejHey. This is useful when:
- You're migrating an existing project to SejHey
- You want to sync changes made directly in your repository
- You need to import translation files created outside of SejHey
How to Pull Translations
- Go to your project's GitHub Integration settings
- Click Pull from GitHub
- Select the branch and file paths you want to pull
- Review the files that will be imported
- Click Import to create or update translation keys in SejHey
When translations are pulled from GitHub, they are automatically created in SejHey. You can then:
- Translate them into different languages using AI translations
- Edit them using the SejHey Editor
- Collaborate with translators and reviewers
- Use in-context editing for better translation quality
📤 Pushing Translations to GitHub
After translating and managing your content in SejHey, you can push translations back to your GitHub repository via merge requests.
How to Push Translations
- Go to your project's GitHub Integration settings
- Click Push to GitHub
- Select the translation release you want to publish
- Use releases to control which translations are pushed
- You can create releases in the Releases section of your project
- Review the changes that will be included in the merge request
- Click Create Merge Request
SejHey will create a merge request (or pull request) in your repository with the updated translation files. You can then:
- Review the changes in GitHub
- Run any CI/CD checks
- Merge when ready
- Maintain full version control history
🌿 Working with Branches
SejHey allows you to work with different branches in your repository:
Selecting a Branch
- In your GitHub integration settings, select the branch you want to work with
- Changes will be synced to and from the selected branch
- You can switch branches at any time
Use Cases for Branching
- Feature branches: Sync translations for specific features
- Staging environment: Work with a staging branch before merging to main
- Version branches: Maintain translations for different application versions
📦 Translation Releases
Translation releases allow you to control exactly which translations are pushed to GitHub. This is useful for:
- Version control: Push specific versions of translations
- Staged releases: Prepare translations before publishing
- Rollback capability: Revert to previous translation versions if needed
Creating a Release
- Go to your project's Releases section
- Click Create Release
- Select the languages and keys you want to include
- Give your release a name and description
- Save the release
Using Releases with GitHub
When pushing to GitHub, select the release you want to publish. Only the translations included in that release will be pushed to your repository.
🔄 Workflow Examples
Workflow 1: Initial Setup
- Connect your GitHub repository to SejHey
- Pull existing translation files from your repository
- Translate them into additional languages using SejHey's tools
- Push translations back via merge request
- Review and merge in GitHub
Workflow 2: Continuous Updates
- Make translations in SejHey (via editor, in-context, or AI)
- Create a release when ready
- Push to GitHub via merge request
- Review and merge
- Translations are now in your repository
Workflow 3: Hybrid Approach
- Keep main translations in GitHub for version control
- Use SejHey for AI translations, collaboration, and in-context editing
- Periodically sync changes both ways:
- Pull updates from GitHub when developers add new keys
- Push translations from SejHey when translators complete work
🔐 Permissions and Access
Required GitHub Permissions
SejHey requires the following GitHub permissions:
- Repository access: Read and write access to your repository
- Pull requests: Create and manage pull requests
- Contents: Read and write repository contents
Access Control
- Only project administrators can configure GitHub integration
- Contributors can use the integration features if they have access to the SejHey project
- Merge requests are created with the GitHub account that authorized SejHey
❓ Frequently Asked Questions
How do I disconnect GitHub integration?
Go to your project's GitHub integration settings and click Disconnect. This will remove the connection but won't affect any files already in your repository.
Can I use GitHub integration with multiple repositories?
Yes, you can connect multiple repositories to the same SejHey project, or connect the same repository to multiple projects.
What file formats are supported?
GitHub integration supports all file formats that SejHey supports, including JSON, PO, XLIFF, XCSTRINGS, and more. See the Supported File Formats documentation for a complete list.
What happens if there are conflicts?
If there are conflicts between SejHey and your repository, you'll be notified during the push process. You can resolve conflicts by:
- Reviewing the conflicting changes
- Choosing which version to keep
- Manually resolving conflicts if needed
Can I automate the sync process?
Currently, syncs are manual actions, but you can use webhooks to trigger workflows. See the Webhooks documentation for more information.
How are merge requests structured?
Merge requests created by SejHey include:
- All updated translation files based on the selected release
- Clear commit messages describing the changes
- Proper file paths matching your repository structure
🎯 Best Practices
- Use releases: Always create releases before pushing to GitHub for better version control
- Review changes: Always review merge requests before merging
- Test locally: Pull changes locally and test before merging to main
- Branch strategy: Use feature branches for major translation updates
- Regular syncs: Keep SejHey and GitHub in sync regularly to avoid large merge conflicts
- Documentation: Document your translation workflow for your team
🔗 Related Documentation
- Releases - Learn more about creating and managing releases
- Export - Other ways to export translations
- Supported File Formats - File format compatibility
- In-Context Editing - Edit translations directly in your app
- Webhooks - Automate workflows with webhooks